1. Field of the Invention:
The present invention is related to the field of computer systems. More particularly, the present invention is a method and apparatus for deriving an object's object type and obtaining object type attribute values for the derived object type for an application.
2. Art Background
It is quite common in the computer industry to offer on any computer system a wide range of applications, such as desktop publishing, databases, spreadsheets, graphics and so on. It is also very common to provide a direct manipulation graphical user interface for the user to interact with these applications. These applications and the data they manipulate are implemented as objects, and the objects are represented to the user by icons. A user interacts with the applications by choosing and manipulating these icons.
The term object comes from the programming methodology known as object-oriented programming. An object is an entity comprising data and operations which can be invoked to manipulate the data. Each object has an object type. The object type defines the object operations, known as the methods, that can be performed on objects of that particular object type. The object operations, or methods, are implemented independent of the objects themselves. Additionally, one object type may inherit the object operations defined and implemented for other object types. For further description on object-oriented design and programming techniques, see B. Meyer, Object-oriented Software Construction, (Prentice Hall, 1988), pp. 65-372.
An icon is a two or three dimensional graphic image symbolically representing an object or operation that will be invoked on the object if the icon is chosen. For further description of direct manipulation graphic user interfaces, see, D. Robson, "Object Oriented Software System", BYTE, August 1981, p. 74, Vol. 6, No. 8, and L. Tesler, "The Small Talk Environment", BYTE, August 1981, p. 90, Vol. 6, No. 8. See also, U.S. Pat. No. Re. 32,632, reissued Mar. 29, 1988, and assigned to Apple Computer, Inc.; and U.S. patent application Ser. No. 07/323,774, filed Mar. 15, 1989 and its corresponding division and continuation applications, Ser. Nos. 07/458,596 and 07/619,665, filed Dec. 26, 1989 and Nov. 28, 1990 respectively, and assigned to the assignee of the subject application, Sun Microsystems, Inc. For further description of specific implementations of direct manipulation graphical user interfaces, for examples, OPEN WINDOWS, by Sun Microsystems, Inc., or others by manufacturers such as International Business Machines, and Apple Computer, Inc., the reader is directed to technical literature provided by these companies.
Typically, in a computer system with direct manipulation graphical user interface, there is a special application often called a desktop manager to invoke and manipulate the various applications when required by the user. The desktop manager displays the icons representing the objects and interprets user gestures such as clicking on the icons, dragging the icons from place to place and dropping the icons on other icons as being request from the user for certain methods to be invoked on the objects. To do so, the desktop manager maintains the necessary information such that it can identify the objects' object types, their methods, icons, other object type attributes, etc.
To further improve inter-operability between applications, it is often desirable for the applications to be able to invoke each other and/or share objects. Similarly, to do so, the various desktop applications must be able to identify the objects' object types, their methods, icons, other object type attributes, etc. One approach is for the applications to have their own facilities for maintaining the necessary information. However, different object types typically have different deriving attributes and different object type attributes. Furthermore, different "families" of object types are typically derived and their object type attributes obtained in different manners. Thus, this approach places a huge burden on the applications.
As will be described, the present invention overcomes the disadvantages of the prior art and provides a method and apparatus for deriving an object's object type and obtaining object type attribute values for the derived object type for an application. The method and apparatus of the present invention allows different object types to be derived with different deriving attributes and different object type attribute values to be obtained for different derived object types. Furthermore, the method and apparatus of the present invention allows different manners for deriving object types and/or obtaining object type attribute values for different "families" of object types. Thus, additional manners for deriving object types and/or obtaining object type attributes may be easily incorporated.